package com.jdyfy.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

import static com.baomidou.mybatisplus.annotation.IdType.AUTO;

/**
 * 实体类，与数据库的表相对应
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("users") //数据库中对应的表名
public class User implements Serializable {

    //确保反序列化时能正确恢复对象的状态
    private static final long serialVersionUID = 1L;

    @TableId(type =  AUTO)
    private Long userId;//用户ID

    private String password;//密码

    private String department; //属公司

    private String username;//用户名

    private String name;//姓名

    private String phoneNumber;//联系电话

    private Integer status;//用户状态 (0禁用，1启用)

    private String avatar;//头像

    private String address;//地址

    private String email;//邮箱

    private Long roleId;//角色ID (1管理员,2主管,3项目负责人,4供应商)

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime lastTime; //最后登录时间

    @TableField(exist = false)
    private String token;//token

    @TableField(exist = false)
    private List<Menu> menus;

}

